home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib17.dsk / DRAW TEXT DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  57 lines

  1. 1  REM  ***********************
  2. 2  REM  *   DRAW TEXT  DEMO   *
  3. 3  REM  * BY ROBERT R. DEVINE *
  4. 4  REM  * COPYRIGHT (C)  1984 *
  5. 5  REM  * BY MICROSPARC, INC. *
  6. 6  REM  * LINCOLN, MA.  01773 *
  7. 7  REM  ***********************
  8. 10  GOSUB 460: GOTO 60
  9. 20  REM  LINES 30-40 SET HTAB & VTAB, TRANSLATE STRING ELEMENTS TO SHAPE #S, TEST FOR ILLEGAL CHARACTERS, AND PRINT THE STRING
  10. 30 HT = HT *7:VT = VT *8: FOR X = 1 TO  LEN(A$): POKE 25, ASC( MID$ (A$,X,1)): CALL 37567: REM  PULL STRING APART, CALL TRANSLATOR TO GET SHAPE #
  11. 40  DRAW  PEEK(25) AT (HT -7) +(X *7),VT: NEXT : RETURN 
  12. 50  REM  **** DEMO #1 ****
  13. 60  HOME : HGR2 :A$ = "HI-RES CHARACTER DRAWING":VT = 2:HT = 8: GOSUB 30
  14. 70 A$ = "WITH THIS ROUTINE YOU CAN 'PRINT' ANY":VT = 4:HT = 0: GOSUB 30
  15. 80 A$ = "OF THE FOLLOWING CHARACTERS.....":VT = 5: GOSUB 30
  16. 90 A$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ":VT = 7: GOSUB 30
  17. 100 A$ = "0123456789 ?.,!'+-=$":VT = 8: GOSUB 30
  18. 110 A$ = "OR THESE HANDY SHAPES.....":VT = 10: GOSUB 30
  19. 120 VT = VT +15:Y = 0: FOR X = 47 TO 51:Y = Y +1: DRAW X AT Y *15,VT: NEXT X
  20. 130 A$ = "THE 'PRINT' ROUTINE SIMULATES THE":VT = 13: GOSUB 30
  21. 140 A$ = "NORMAL VTAB AND HTAB FUNCTION.":VT = 14: GOSUB 30
  22. 150 A$ = "IF YOU TRY TO ENTER AN ILLEGAL CHARACTER":VT = 16: GOSUB 30
  23. 160 A$ = "A BLANK WILL APPEAR IN ITS PLACE.":VT = 17: GOSUB 30
  24. 170 A$ = "TOUCH ANY KEY TO CONTINUE-":VT = 20: GOSUB 30: GET A$
  25. 180  REM  **** DEMO #2 ****
  26. 190  HOME : HGR : VTAB 22: HTAB 5: PRINT "HOW ABOUT A HANDY SALES CHART ?"
  27. 200  HPLOT 40,0 TO 40,140 TO 275,140: FOR X = 20 TO 116  STEP 24: FOR Y = 40 TO 270  STEP 10: HPLOT Y,X TO Y +1,X: NEXT Y,X
  28. 210  DRAW 47 AT 98,10:A$ = "COMPUTER SALES":VT = 1:HT = 16: GOSUB 30:T =  -1: FOR Z = 100 TO 20  STEP  -20:HT = 2:T = T +3:VT = T:A$ =  STR$(Z): GOSUB 30: NEXT Z
  29. 220 B$ = "SALES IN THOUSANDS":T = 19: ROT= 48: FOR Z = 1 TO 18:A$ =  MID$ (B$,Z,1):T = T -1:VT = T:HT = 0: GOSUB 30: NEXT Z: ROT= 0
  30. 230 A$ = "J  F  M  A  M  J  J  A  S  O  N  D":VT = 18:HT = 6: GOSUB 30
  31. 240  HPLOT 42,100 TO 63,50 TO 84,40 TO 105,55 TO 126,60 TO 147,20 TO 168,25 TO 189,50 TO 210,70 TO 231,30 TO 252,35 TO 273,25
  32. 250  HOME : VTAB 22: HTAB 6: PRINT "TOUCH ANY KEY TO CONTINUE >";: GET A$: PRINT 
  33. 260  REM  **** DEMO #3 ****
  34. 270  HOME : HGR2 :A$ = "ANYBODY FOR A GAME OF CARDS ?":VT = 0:HT = 5: GOSUB 30
  35. 280 B$ = "A500K4852510Q4958485A4854500":B = 1
  36. 290  FOR Z = 0 TO 240  STEP 40: GOSUB 440: HCOLOR= 0
  37. 300  POKE 25, ASC( MID$ (B$,B,1)): CALL 37567
  38. 310  DRAW  PEEK(25) AT Z +5,53: DRAW  VAL( MID$ (B$,B +1,2)) AT Z +12,56: ROT= 32: DRAW  PEEK(25) AT Z +32,107: DRAW  VAL( MID$ (B$,B +1,2)) AT Z +25,104: ROT= 0
  39. 320 B = B +4: NEXT Z: HCOLOR= 3: HPLOT 0,150 TO 0,190 TO 279,190 TO 279,150 TO 0,150
  40. 330 A$ = "HUMAN'S SCORE = " + STR$( INT( RND(1) *500)):VT = 20:HT = 10: GOSUB 30
  41. 340  DRAW 47 AT 80,178:A$ = "'S SCORE = " + STR$( INT( RND(1) *500)):VT = 22:HT = 13: GOSUB 30
  42. 350 A$ = "TOUCH ANY KEY TO CONTINUE":VT = 17:HT = 7: GOSUB 30: GET A$: PRINT 
  43. 360  REM  **** DEMO #4 ****
  44. 370  HOME : HGR2 :A$ = "NOW YOU CAN PRINT ANY LETTERS,":VT = 0:HT = 0: GOSUB 30
  45. 380 B$ = "ANYWHERE YOU WANT THEM":T = 0: ROT= 16: FOR Z = 1 TO 22:A$ =  MID$ (B$,Z,1):T = T +1:VT = T:HT = 31: GOSUB 30: NEXT Z: ROT= 32
  46. 390 B$ = "ON THE HI-RES SCREEN.":T = 29: FOR Z = 1 TO 21:A$ =  MID$ (B$,Z,1):VT = 23:HT = T: GOSUB 30:T = T -1: NEXT Z
  47. 400 A$ = "END OF DEMO !!": ROT= 54:X = 40:Y = 160:Z = 1
  48. 410  POKE 25, ASC( MID$ (A$,Z,1)): CALL 37567
  49. 420  DRAW  PEEK(25) AT X,Y:Z = Z +1: ON (Z = 15) GOTO 430:X = X +10:Y = Y -10: GOTO 410
  50. 430  GET K$: TEXT : HOME : END 
  51. 440  HCOLOR= 3: FOR A = Z TO Z +37: HPLOT A,50 TO A,110: NEXT A: HCOLOR=  VAL( MID$ (B$,B +3,1)): FOR A = Z +4 TO Z +32: HPLOT A,65 TO A,95: NEXT A: RETURN 
  52. 450  REM   THIS ROUTINE READS THE SHAPE TABLE,AND SETS POINTERS
  53. 460  PRINT  CHR$(4)"MAXFILES 1": PRINT  CHR$(4)"BLOAD GRAPHICS CHAR A$9300/L768": HIMEM: 37567
  54. 470  POKE 232,0: POKE 233,147: SCALE= 1: ROT= 0: HCOLOR= 3
  55. 480 A$ = "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ?.,!'+-=$":Y = 37585: FOR X = 1 TO  LEN(A$): POKE Y, ASC( MID$ (A$,X,1)):Y = Y +1: NEXT X: REM  POKE ASC VALUE TABLE INTO MEMORY
  56. 490  FOR X = 37567 TO 37583: READ Y: POKE X,Y: NEXT : RETURN 
  57. 500  DATA  162,46,189,208,146,197,25,240,5,202,208,246,162,11,134,25,96